﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MvcEngine.Core.Pagination;
using MvcEngine.Core.Base;


namespace MvcEngine.Core.Account
{
    public interface IAccountManager
    {
        IPagination<User> GetUsers(LoadOptions options);

        void SaveUser(User user);

        User GetUser(Guid userId);

        User GetUser(string userName);

        Role GetRole(string roleName);

        IList<Role> GetRoles();

        IList<Role> GetRolesForUser(User user);

        IList<Permission> GetPermissions();

        IList<ControlPermission> GetControlPermissions(int pageContentId);

        void AddControlPermission(ControlPermission permission);

        void DeleteControlPermission(int pageContentId, Guid permissionId, Guid roleId);

        IList<PagePermission> GetPagePermissions(Guid pageId);

        void AddPagePermission(PagePermission permission);

        void DeletePagePermission(Guid pageId, Guid permissionId, Guid roleId);

        
    }
}
